
                    #================================#
                     Sagem Doctor Version 1.3 Read-me
                    #================================#

Contents
--------

 - Introduction
 - What's new
 - Command line parameters
 - The different backup areas
 - (not!) Restoring with a backup from a different phone
 - Common problems


Introduction
------------
This program allows to read and write memory fields in the eeprom of a
Sagem 900 series phone. As several important settings are stored in
the eeprom, changes at the wrong fields can damage the phone in several
ways. Please do not change fields without a reason just to see what
happens.

A backup and restore function is included, but this might not help with
all problems as some errors will make data communication with the phone
impossible.

Anyway, you have been warned and please don't blame me if your phone
won't work after treating it with this program.

If you have a problem with SagemDoctor, please read through this
text completely; many questions are answered here.

For comments or questions not answered in this text, you can
contact me via eMail under the address <SagemDoctor@web.de>

The latest version of SagemDoctor and other Sagem-related material
from me is available at my website:

   http://SagemDoctor.de.vu/


Whats' new?
-----------
I have finally been able to include a function for verifying and
calculating eeprom checksums. This is a feature I wanted to implement
for a long time, but now it became possible thanks to 'Ths9' who
provided me with everything I wanted to new about the algorithm - Big
thanks and keep up the good work!

  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Before changing any field values or checksums, you should !
  ! create a backup of the eeprom to be able to restore your  !
  ! phone if something goes wrong.                            !
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

This function can be used to repair phones which permanently show
the "SIMLOCKED" message, even without sim card. If the program finds
an invalid checksum for a field, you must choose the action:

- if you think the data in the prom- / flash-field is correct and the
  checksum is wrong, choose '1' to correct the checksum with the data
  from the field.

- if you think the data is wrong and the checksum is correct, choose
  '2' to rebuild the field data from the checksum.

Please note that this function does not work with firmware 4.1M
phones; it's currently not possible to calculate or verify the
checksums with this phones, sorry!


Command line parameters:
------------------------
Sagem Doctor can be called with the following command line parameters:

   -p [num]   : Use comport com[num] to communicate with the phone.

   -b [speed] : Use communication speed of [speed] bps.
                Allowed values are 2400/4800/9600/19200/38400

   -e         : The "etna" flag: suppress output of transfered data
                in the phone I/O-window. This can help on some
                computers where the text output is very slow.

   -?         : display help screen for the command line parameters.

The different backup areas:
---------------------------
The software in the phone stores information in "fields", numbered from
0 to 16383. However, most of the fields are not used in current phones.
When creating backup, you can select the field areas you want to backup.
If you select "all other fields", Sagem Doctor will try to read all
possible field numbers, even if they are empty. Because creating a full
backup takes very long, a quick backup will only read the fields which
are known to contain data.

This is the preferred choice for older firmware revisions, but new firmware
revisions can introduce new data in fields which were empty before. These
fields will not be read with quick backup, so choose "full backup" if
you think this is the case.

Hint: You can create a full and a quick backup and compare the size of
the backup files. If the size is the same, you can use quick backup.
  
Note that using the restore function will not delete fields that were empty
at the time of the backup and have been added to the memory since then. As
far as I know, this concerns game highscores, SMS and phonebook entries
stored in the phone and WAP-related fields on phones that support this.


(Not!) Restoring with a backup from a different phone:
------------------------------------------------------
In general, it's not a good idea to write the memory content of
one phone into the memory of another phone. This will not solve
any problems but will instead give you a bunch of new problems
you do _not_ want to face.

 o You can NOT update/downdate your firmware by using a backup
   from a different phone! The phone firmware is stored in a
   different memory area which can not be written with Sagem Doctor!

 o You can NOT remove the simlock by using a backup from
   a different (unlocked) phone!

If you still want to write a different backup to a phone (for example
because your phone is broken beyond repair), please follow these guidelines:

 o Create a backup of your phone's original eeprom content (!),

 o Try to get a backup image from a phone with the same firmware
   version,

 o Keep field 0 from your phone (if field 0 does not match the phone,
   it will refuse to work and display "SIM MISSING"),

 o Use the "verify checksums" function of Sagem Doctor to write valid
   checksums for your phone.


Common problems:
----------------

- Many "timeout" error messages when commands are sent
+ The Sagem phones have a built-in power saving function which will
  disable the data communication when not used for a certain time.
  Pressing 'C' on the phone will wake the phone up, so try this if
  you are having timeout problems.

- You have written a backup of a phone to a different phone, and now
  the phone does not work.
+ Please read the section about the backup function. If field 0 is changed,
  the phone displayes an error message (usually "SIM missing"), because
  there is another (encrypted) copy of field 0 in an area that can not
  be read or written by SagemDoctor. The two copies must fit together, so
  write back the old value of field 0.

- Some functions don't work on firmware version 4.1M or later
+ This is because Sagem has changed the firmware to hide some phone
  data from "Hacking programs". Although Sagem Doctor does not aim to
  be a hacking program in the first place, it uses the same methods
  to get information from the phone. Because this no longer works,
  Sagem Doctor can not get the information to work 100% on these
  phones - Sorry!


Version History:
================

Changes for Version 1.3:
------------------------
+ added function to verify and calculate eeprom checksums.
+ removed a bug that sometimes shifted field numbers in backups
+ some minor cleanup in old routines
+ some work on the sagemdr.txt file [anyone reading this anyway?]

Changes for Version 1.2c:
-------------------------
+ support for communication with 38400 baud
+ added menu items for the com port and for enabling / disabling
  phone I/O output on screen
+ added option to load phone memory from a text file. Use this with
  caution, there is not too much error checking done on the text file.
+ some minor changes and fixes


Changes for Version 1.2b:
-------------------------
+ Introduced command line parameters. See the explanation for details
+ Added functionality to resize prom fields
+ allowed for user defined range when making an eeprom backup
+ some minor work

Changes for Version 1.2a:
-------------------------
+ Field editor can now delete or shorten flash fields. Many thanks to
  'Jack' for telling me about the command to delete flash fields!

Changes for Version 1.2:
------------------------
+ Ported to Windows Console. Now this program requires a Windows DOS box
  to run, but several problems with the com port should be fixed.
  This slowed down the text output a little, though...
+ User can set start and ending address for ram dump
+ Added function to edit ram
+ Removed some old function that were not useful anyway
+ Skip over fields in backup and restore, so you can continue after an error
+ Some cosmetic changes, functions grouped together by topic
+ selection of eeprom area to backup

Changes for Version 1.1b:
-------------------------
+ Fixed display when editing empty eeprom fields
+ A little work at the RAM dump feature

Changes for Version 1.1a:
-------------------------
+ read full 2 megabytes of RAM, version 1.1 missed the last byte
+ fixed address display when continuing RAM-dump

Changes for Version 1.1:
------------------------
+ support for 19200 baud connection
+ RAM-dump feature
+ bugfix: No more crashed when the field to edit was empty
+ bugfix: backup stopped at field 16183, not 16383, so two fields were missing
+ better handling of serial communication -> no more "Answer was broken"
+ ...
